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
- DataServiceEntityAttribute.cs
- TranslateTransform.cs
- AutomationIdentifier.cs
- NavigatorOutput.cs
- StateDesigner.LayoutSelectionGlyph.cs
- SQLRoleProvider.cs
- TextViewSelectionProcessor.cs
- ListSortDescription.cs
- SystemParameters.cs
- AdPostCacheSubstitution.cs
- LoadedOrUnloadedOperation.cs
- TemplateControl.cs
- PrintController.cs
- DBSqlParserColumnCollection.cs
- MethodRental.cs
- DesignBindingPicker.cs
- HttpCookiesSection.cs
- TraceRecord.cs
- FrameworkObject.cs
- SqlStatistics.cs
- DesignerLabelAdapter.cs
- WorkflowEnvironment.cs
- HelloOperationCD1AsyncResult.cs
- JournalEntryStack.cs
- CellTreeNode.cs
- DataGridComponentEditor.cs
- TreeViewDataItemAutomationPeer.cs
- SqlTriggerAttribute.cs
- ProfileGroupSettingsCollection.cs
- MethodRental.cs
- SqlUDTStorage.cs
- SerializationFieldInfo.cs
- FtpWebResponse.cs
- NoClickablePointException.cs
- CodeSubDirectory.cs
- XmlReflectionMember.cs
- DataServiceQueryContinuation.cs
- MultilineStringConverter.cs
- UserPreferenceChangingEventArgs.cs
- GridViewItemAutomationPeer.cs
- shaper.cs
- KeyEvent.cs
- BindingContext.cs
- TextEmbeddedObject.cs
- DataGridViewCellValueEventArgs.cs
- SmtpSection.cs
- RunWorkerCompletedEventArgs.cs
- DocumentSignatureManager.cs
- Debug.cs
- CodeArrayCreateExpression.cs
- path.cs
- PathBox.cs
- StorageEntityContainerMapping.cs
- OdbcException.cs
- AssemblyInfo.cs
- IntellisenseTextBox.designer.cs
- UriSection.cs
- TypeRestriction.cs
- PathGeometry.cs
- QueryResults.cs
- ScrollEvent.cs
- BackgroundWorker.cs
- _SslStream.cs
- NameScope.cs
- IPAddress.cs
- DecimalStorage.cs
- BindingExpression.cs
- ExtensionMethods.cs
- WebUtil.cs
- FontFamily.cs
- ApplyTemplatesAction.cs
- FragmentQuery.cs
- XDRSchema.cs
- GridViewRowPresenterBase.cs
- PathFigureCollectionConverter.cs
- VariableQuery.cs
- WebPartActionVerb.cs
- TextStore.cs
- RoutingChannelExtension.cs
- SecurityManager.cs
- PartitionedDataSource.cs
- WindowsSysHeader.cs
- PrePrepareMethodAttribute.cs
- QueryGeneratorBase.cs
- ChannelReliableSession.cs
- XmlRawWriterWrapper.cs
- ListBindingHelper.cs
- SecurityContext.cs
- CriticalExceptions.cs
- ExtenderProviderService.cs
- DateTimeConverter2.cs
- RequestSecurityTokenResponse.cs
- brushes.cs
- Propagator.Evaluator.cs
- GCHandleCookieTable.cs
- WindowsGraphics.cs
- ClientSideQueueItem.cs
- DataStorage.cs
- FrameworkElement.cs
- BamlBinaryReader.cs