Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / Tools / System.Activities.Presentation / System / Activities / Presentation / View / AssemblyContextControlItem.cs / 1305376 / AssemblyContextControlItem.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.Activities.Presentation.Hosting { using System; using System.Collections.Generic; using System.Reflection; using System.Runtime; using System.Diagnostics.CodeAnalysis; using System.Activities.Presentation.Hosting; using System.IO; using System.Linq; //This class is required by the TypeBrowser - it allows browsing defined types either in VS scenario or in //rehosted scenario. The types are divided into two categories - types defined in local assembly (i.e. the one //contained in current project - for that assembly, types are loaded using GetTypes() method), and all other //referenced types - for them, type list is loaded using GetExportedTypes() method. // //if this object is not set in desinger's Items collection or both members are null, the type //browser will not display "Browse for types" option. [Fx.Tag.XamlVisible(false)] public sealed class AssemblyContextControlItem : ContextItem { public AssemblyName LocalAssemblyName { get; set; } [SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Justification = "This is by design")] public IListReferencedAssemblyNames { get; set; } public override Type ItemType { get { return typeof(AssemblyContextControlItem); } } public IEnumerable AllAssemblyNamesInContext { get { if ((LocalAssemblyName != null) && LocalAssemblyName.CodeBase != null && (File.Exists(new Uri(LocalAssemblyName.CodeBase).LocalPath))) { yield return LocalAssemblyName.FullName; } foreach (AssemblyName assemblyName in GetEnvironmentAssemblyNames()) { //avoid returning local name twice if (LocalAssemblyName == null || !assemblyName.FullName.Equals(LocalAssemblyName.FullName, StringComparison.Ordinal)) { yield return assemblyName.FullName; } } } } public IEnumerable GetEnvironmentAssemblyNames() { if (this.ReferencedAssemblyNames != null) { return this.ReferencedAssemblyNames; } else { List assemblyNames = new List (); foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies()) { if (!assembly.IsDynamic) { assemblyNames.Add(assembly.GetName()); } } return assemblyNames; } } [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Justification = "Multi-Targeting makes sense")] public IEnumerable GetEnvironmentAssemblies (IMultiTargetingSupportService multiTargetingService) { if (this.ReferencedAssemblyNames == null) { return AppDomain.CurrentDomain.GetAssemblies().Where (assembly => !assembly.IsDynamic); } else { List assemblies = new List (); foreach (AssemblyName assemblyName in this.ReferencedAssemblyNames) { Assembly assembly = GetAssembly(assemblyName, multiTargetingService); if (assembly != null) { assemblies.Add(assembly); } } return assemblies; } } [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Justification = "Multi-Targeting makes sense")] public static Assembly GetAssembly(AssemblyName assemblyName, IMultiTargetingSupportService multiTargetingService) { Assembly assembly = null; try { if (multiTargetingService != null) { assembly = multiTargetingService.GetReflectionAssembly(assemblyName); } else { assembly = Assembly.Load(assemblyName); } } catch (FileNotFoundException) { //this exception may occur if current project is not compiled yet } catch (FileLoadException) { //the assembly could not be loaded, ignore the error } catch (BadImageFormatException) { //bad assembly } return assembly; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- GridEntryCollection.cs
- ErrorLog.cs
- MouseCaptureWithinProperty.cs
- AuthenticationException.cs
- HttpListenerRequest.cs
- FixedTextBuilder.cs
- ToolBarDesigner.cs
- QfeChecker.cs
- PriorityRange.cs
- X509CertificateValidator.cs
- WebBaseEventKeyComparer.cs
- PackagePart.cs
- SmtpDigestAuthenticationModule.cs
- IProvider.cs
- UriSection.cs
- JoinElimination.cs
- Predicate.cs
- MetaDataInfo.cs
- OpacityConverter.cs
- TextDecorationCollection.cs
- Rules.cs
- SystemDiagnosticsSection.cs
- DataGridPagingPage.cs
- PatternMatcher.cs
- ISessionStateStore.cs
- Thumb.cs
- PeerValidationBehavior.cs
- WebPart.cs
- StickyNoteAnnotations.cs
- TextParagraphCache.cs
- GeneralTransformGroup.cs
- TypePropertyEditor.cs
- securitycriticaldataClass.cs
- ControlDesignerState.cs
- LoginCancelEventArgs.cs
- COM2ExtendedTypeConverter.cs
- Vector3DCollection.cs
- Point3DConverter.cs
- ExpressionList.cs
- DbProviderFactories.cs
- SHA384Managed.cs
- AxHost.cs
- DefaultBindingPropertyAttribute.cs
- unsafeIndexingFilterStream.cs
- NetworkInformationException.cs
- CachedBitmap.cs
- SignedXmlDebugLog.cs
- PropertyToken.cs
- dataobject.cs
- BufferedGraphics.cs
- PageThemeParser.cs
- MultiSelectRootGridEntry.cs
- DataSpaceManager.cs
- AsyncPostBackErrorEventArgs.cs
- DefaultValueConverter.cs
- QuaternionAnimationBase.cs
- StorageConditionPropertyMapping.cs
- TypeSystem.cs
- ZipIOLocalFileDataDescriptor.cs
- recordstatefactory.cs
- InputEventArgs.cs
- TableProviderWrapper.cs
- DisposableCollectionWrapper.cs
- SqlFormatter.cs
- StaticSiteMapProvider.cs
- Int32Converter.cs
- MissingMethodException.cs
- ScaleTransform.cs
- MatrixCamera.cs
- SchemaSetCompiler.cs
- PreviewKeyDownEventArgs.cs
- SortDescription.cs
- SecurityTokenException.cs
- HyperlinkAutomationPeer.cs
- AutoSizeToolBoxItem.cs
- RegexBoyerMoore.cs
- StateRuntime.cs
- RemotingConfigParser.cs
- UserPersonalizationStateInfo.cs
- TextPointerBase.cs
- DiscoveryReference.cs
- mediaclock.cs
- LinkClickEvent.cs
- CustomExpression.cs
- DocumentAutomationPeer.cs
- WindowsRichEdit.cs
- WorkItem.cs
- NumericExpr.cs
- ProxyWebPartConnectionCollection.cs
- _SslSessionsCache.cs
- WorkflowInstanceUnhandledExceptionRecord.cs
- SamlAssertionDirectKeyIdentifierClause.cs
- TextProperties.cs
- HostSecurityManager.cs
- DataSourceNameHandler.cs
- ItemDragEvent.cs
- BufferedReadStream.cs
- CheckBoxPopupAdapter.cs
- lengthconverter.cs
- IUnknownConstantAttribute.cs