Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / ManagedLibraries / Remoting / MetaData / MetaData.cs / 1305376 / MetaData.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== //============================================================ // // File: MetaDataServices //// Author: Gopal Kakivaya (GopalK) // // Purpose: Defines APIs for Metadata // // Date: April 01, 2000 // //=========================================================== namespace System.Runtime.Remoting.MetadataServices { using System; using System.Threading; using System.Collections; using System.Reflection; using System.Xml; using System.Diagnostics; using System.IO; using System.Net; using System.Text; using System.Runtime.InteropServices; using System.Runtime.Remoting.Channels; using System.Runtime.Remoting.Metadata; using Microsoft.CSharp; using System.CodeDom.Compiler; using System.Globalization; public class MetaData { public static void ConvertTypesToSchemaToFile(Type[] types, SdlType sdlType, String path) { Util.Log("MetaData.ConvertTypesToSchemaToFile 1 "+path); ConvertTypesToSchemaToStream(types, sdlType, File.Create(path)); } // ConvertTypesToSchemaToFile public static void ConvertTypesToSchemaToStream(Type[] types, SdlType sdlType, Stream outputStream) { Util.Log("MetaData.ConvertTypesToSchemaToFile 2 "); // < ServiceType[] serviceTypes = new ServiceType[types.Length]; for (int i=0; i0) { stfilename = assemblyPath.Substring(0,index+1)+stfilename; } } FileStream fs = new FileStream(stfilename, FileMode.Create, FileAccess.ReadWrite); StreamWriter fsWriter = new StreamWriter(fs, new UTF8Encoding(false, true)); fsWriter.WriteLine("// CLR Remoting Autogenerated Key file (to create a key file use: sn -k tmp.key)"); fsWriter.WriteLine("using System;"); fsWriter.WriteLine("using System.Reflection;"); fsWriter.WriteLine("[assembly: AssemblyKeyFile(@\""+strongNameFilename+"\")]"); fsWriter.WriteLine("[assembly: AssemblyVersion(@\"1.0.0.1\")]"); fsWriter.Flush(); fsWriter.Close(); fs.Close(); outCodeStreamList.Add(stfilename); Util.Log("MetaData.ConvertCodeSourceStreamToAssemblyFile key file "+stfilename); } String[] sourceTexts = new String[outCodeStreamList.Count]; String[] sourceTextNames = new String[outCodeStreamList.Count]; int streamCount = 0; // used for naming sourceTexts streams for(int item=0;item 0) { CodeDomProvider csharpCompiler = new CSharpCodeProvider(); CompilerParameters compileParams = new CompilerParameters(imports, target, true); compileParams.GenerateExecutable = false; // target:library results = csharpCompiler.CompileAssemblyFromSource(compileParams, sourceTexts); } } catch (Exception ex) { Console.WriteLine(ex.ToString()); } finally { File.Delete(stfilename); } if (results.Errors.HasErrors) { CompilerErrorCollection errors = results.Errors; if (errors.Count > 0) { foreach (CompilerError error in errors) { Console.WriteLine(error.ToString()); } } } #endif //!FEATURE_PAL } /* /target:module -> Name="target", Value="module" /target:library -> Name="target", Value="library" /main:MyClass -> Name="m", Value="MyClass" /debug+ -> Name="debug", Value=true // The dictionary of options takes almost ALL of the normal command-line options, but only using their 'short form' and without the preceding slash or dash. */ public static void ConvertCodeSourceFileToAssemblyFile(String codePath, String assemblyPath, String strongNameFilename) { Util.Log("MetaData.ConvertCodeSourceFileToAssemblyFile codePath "+codePath+" assemblyPath "+assemblyPath); ArrayList arrayList = new ArrayList(); arrayList.Add(codePath); ConvertCodeSourceStreamToAssemblyFile(arrayList, assemblyPath, strongNameFilename); } // Helpers public static void SaveStreamToFile(Stream inputStream, String path) { Util.Log("MetaData.SaveStreamToFile "+path); Stream outputStream = File.Create(path); TextWriter tw = new StreamWriter(outputStream, new UTF8Encoding(false, true)); StreamReader sr = new StreamReader(inputStream); tw.Write(sr.ReadToEnd()); tw.Flush(); tw.Close(); outputStream.Close(); } } // class MetaData public class ServiceType { private Type _type; // Type of object being exported. private String _url; // This may be null if no address is available. public ServiceType(Type type) { _type = type; _url = null; } // ServiceType public ServiceType(Type type, String url) { _type = type; _url = url; } // ServiceType public Type ObjectType { get { return _type; } } public String Url { get { return _url; } } } // ServiceType } // namespace System.Runtime.Remoting.MetadataServices // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== //============================================================ // // File: MetaDataServices // // Author: Gopal Kakivaya (GopalK) // // Purpose: Defines APIs for Metadata // // Date: April 01, 2000 // //=========================================================== namespace System.Runtime.Remoting.MetadataServices { using System; using System.Threading; using System.Collections; using System.Reflection; using System.Xml; using System.Diagnostics; using System.IO; using System.Net; using System.Text; using System.Runtime.InteropServices; using System.Runtime.Remoting.Channels; using System.Runtime.Remoting.Metadata; using Microsoft.CSharp; using System.CodeDom.Compiler; using System.Globalization; public class MetaData { public static void ConvertTypesToSchemaToFile(Type[] types, SdlType sdlType, String path) { Util.Log("MetaData.ConvertTypesToSchemaToFile 1 "+path); ConvertTypesToSchemaToStream(types, sdlType, File.Create(path)); } // ConvertTypesToSchemaToFile public static void ConvertTypesToSchemaToStream(Type[] types, SdlType sdlType, Stream outputStream) { Util.Log("MetaData.ConvertTypesToSchemaToFile 2 "); // < ServiceType[] serviceTypes = new ServiceType[types.Length]; for (int i=0; i0) { stfilename = assemblyPath.Substring(0,index+1)+stfilename; } } FileStream fs = new FileStream(stfilename, FileMode.Create, FileAccess.ReadWrite); StreamWriter fsWriter = new StreamWriter(fs, new UTF8Encoding(false, true)); fsWriter.WriteLine("// CLR Remoting Autogenerated Key file (to create a key file use: sn -k tmp.key)"); fsWriter.WriteLine("using System;"); fsWriter.WriteLine("using System.Reflection;"); fsWriter.WriteLine("[assembly: AssemblyKeyFile(@\""+strongNameFilename+"\")]"); fsWriter.WriteLine("[assembly: AssemblyVersion(@\"1.0.0.1\")]"); fsWriter.Flush(); fsWriter.Close(); fs.Close(); outCodeStreamList.Add(stfilename); Util.Log("MetaData.ConvertCodeSourceStreamToAssemblyFile key file "+stfilename); } String[] sourceTexts = new String[outCodeStreamList.Count]; String[] sourceTextNames = new String[outCodeStreamList.Count]; int streamCount = 0; // used for naming sourceTexts streams for(int item=0;item 0) { CodeDomProvider csharpCompiler = new CSharpCodeProvider(); CompilerParameters compileParams = new CompilerParameters(imports, target, true); compileParams.GenerateExecutable = false; // target:library results = csharpCompiler.CompileAssemblyFromSource(compileParams, sourceTexts); } } catch (Exception ex) { Console.WriteLine(ex.ToString()); } finally { File.Delete(stfilename); } if (results.Errors.HasErrors) { CompilerErrorCollection errors = results.Errors; if (errors.Count > 0) { foreach (CompilerError error in errors) { Console.WriteLine(error.ToString()); } } } #endif //!FEATURE_PAL } /* /target:module -> Name="target", Value="module" /target:library -> Name="target", Value="library" /main:MyClass -> Name="m", Value="MyClass" /debug+ -> Name="debug", Value=true // The dictionary of options takes almost ALL of the normal command-line options, but only using their 'short form' and without the preceding slash or dash. */ public static void ConvertCodeSourceFileToAssemblyFile(String codePath, String assemblyPath, String strongNameFilename) { Util.Log("MetaData.ConvertCodeSourceFileToAssemblyFile codePath "+codePath+" assemblyPath "+assemblyPath); ArrayList arrayList = new ArrayList(); arrayList.Add(codePath); ConvertCodeSourceStreamToAssemblyFile(arrayList, assemblyPath, strongNameFilename); } // Helpers public static void SaveStreamToFile(Stream inputStream, String path) { Util.Log("MetaData.SaveStreamToFile "+path); Stream outputStream = File.Create(path); TextWriter tw = new StreamWriter(outputStream, new UTF8Encoding(false, true)); StreamReader sr = new StreamReader(inputStream); tw.Write(sr.ReadToEnd()); tw.Flush(); tw.Close(); outputStream.Close(); } } // class MetaData public class ServiceType { private Type _type; // Type of object being exported. private String _url; // This may be null if no address is available. public ServiceType(Type type) { _type = type; _url = null; } // ServiceType public ServiceType(Type type, String url) { _type = type; _url = url; } // ServiceType public Type ObjectType { get { return _type; } } public String Url { get { return _url; } } } // ServiceType } // namespace System.Runtime.Remoting.MetadataServices // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PlacementWorkspace.cs
- SystemNetworkInterface.cs
- MemberDomainMap.cs
- Int32CAMarshaler.cs
- DataFormat.cs
- LostFocusEventManager.cs
- KeyMatchBuilder.cs
- AuthenticationConfig.cs
- SemaphoreFullException.cs
- WorkflowMarkupSerializerMapping.cs
- WebControlsSection.cs
- ObjectKeyFrameCollection.cs
- KeyBinding.cs
- MissingFieldException.cs
- QueryLifecycle.cs
- HostedTransportConfigurationManager.cs
- BaseTemplateBuildProvider.cs
- SQLDoubleStorage.cs
- ToRequest.cs
- CheckedListBox.cs
- DataSourceControl.cs
- CaseInsensitiveComparer.cs
- GenericAuthenticationEventArgs.cs
- SingleStorage.cs
- COM2FontConverter.cs
- XmlSchemaObjectTable.cs
- CleanUpVirtualizedItemEventArgs.cs
- HtmlTableCell.cs
- XmlSchemaAny.cs
- Conditional.cs
- DrawingImage.cs
- Size3DValueSerializer.cs
- DependencyPropertyKind.cs
- TreeNodeConverter.cs
- altserialization.cs
- CollectionBuilder.cs
- BitmapEditor.cs
- DataGrid.cs
- ClassHandlersStore.cs
- RTLAwareMessageBox.cs
- AssemblyBuilderData.cs
- SafeSecurityHandles.cs
- storagemappingitemcollection.viewdictionary.cs
- VisualTreeHelper.cs
- SecurityException.cs
- FontWeightConverter.cs
- SymmetricAlgorithm.cs
- DatePickerTextBox.cs
- CodeIdentifiers.cs
- EntityDesignerUtils.cs
- xamlnodes.cs
- RoutedEventValueSerializer.cs
- TabControlCancelEvent.cs
- NamespaceQuery.cs
- MtomMessageEncoder.cs
- DrawingContextWalker.cs
- XmlLoader.cs
- FrameworkContentElement.cs
- JsonGlobals.cs
- CommandValueSerializer.cs
- ISAPIWorkerRequest.cs
- XmlFormatExtensionPrefixAttribute.cs
- ValidationErrorCollection.cs
- NetNamedPipeBindingElement.cs
- DynamicUpdateCommand.cs
- SiteMap.cs
- ListView.cs
- MarkupWriter.cs
- PolicyFactory.cs
- StorageFunctionMapping.cs
- ObjectTypeMapping.cs
- RuntimeConfig.cs
- ImageListStreamer.cs
- RecipientInfo.cs
- CommonProperties.cs
- OneOfScalarConst.cs
- ArrayList.cs
- Stroke2.cs
- ListItemCollection.cs
- InputBinding.cs
- FileDetails.cs
- GradientBrush.cs
- PipeSecurity.cs
- SchemaElement.cs
- GridLength.cs
- WebPartUserCapability.cs
- TimeEnumHelper.cs
- MatcherBuilder.cs
- NetSectionGroup.cs
- UndoEngine.cs
- XPathException.cs
- Border.cs
- ContainerControl.cs
- ToolStripOverflow.cs
- WindowsIPAddress.cs
- BufferedGraphics.cs
- CodeSnippetStatement.cs
- FileDetails.cs
- XmlDocumentFieldSchema.cs
- EntitySetBase.cs