1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149
|
#region Copyright (c) Microsoft Corporation
/// <copyright company='Microsoft Corporation'>
/// Copyright (c) Microsoft Corporation. All Rights Reserved.
/// Information Contained Herein is Proprietary and Confidential.
/// </copyright>
#endregion
using System;
using System.Globalization;
using System.IO;
using XmlSerialization = System.Xml.Serialization;
#if WEB_EXTENSIONS_CODE
using System.Web.Resources;
#else
using Microsoft.VSDesigner.WCF.Resources;
#endif
#if WEB_EXTENSIONS_CODE
namespace System.Web.Compilation.WCFModel
#else
namespace Microsoft.VSDesigner.WCFModel
#endif
{
/// <summary>
/// This class presents a single file referenced by a svcmap file
/// </summary>
/// <remarks></remarks>
#if WEB_EXTENSIONS_CODE
internal class ExternalFile
#else
[CLSCompliant(true)]
public class ExternalFile
#endif
{
// File Name
private string m_FileName;
// Is the MeatadataFile loaded from the file? If it is false, we need create a new file when we save to the disket
private bool m_IsExistingFile;
// error happens when the file is loaded
private Exception m_ErrorInLoading;
/// <summary>
/// Constructor
/// </summary>
/// <remarks> Must support a default construct for XmlSerializer</remarks>
public ExternalFile()
{
m_FileName = String.Empty;
}
/// <summary>
/// Constructor
/// </summary>
/// <param name="fileName">File Name</param>
public ExternalFile(string fileName)
{
this.FileName = fileName;
}
/// <summary>
/// Error happens when the file is loaded
/// </summary>
/// <value></value>
/// <remarks></remarks>
[XmlSerialization.XmlIgnore()]
public Exception ErrorInLoading
{
get
{
return m_ErrorInLoading;
}
set
{
m_ErrorInLoading = value;
}
}
/// <summary>
/// FileName in the storage
/// </summary>
/// <value></value>
/// <remarks></remarks>
[XmlSerialization.XmlAttribute()]
public string FileName
{
get
{
return m_FileName;
}
set
{
if (value == null)
{
throw new ArgumentNullException("value");
}
if (!IsLocalFileName(value))
{
throw new NotSupportedException(String.Format(CultureInfo.CurrentCulture, WCFModelStrings.ReferenceGroup_InvalidFileName, value));
}
m_FileName = value;
}
}
/// <summary>
/// Is the item loaded from the file? If it is false, we need create a new file when we save to the disket
/// </summary>
/// <value></value>
/// <remarks></remarks>
[XmlSerialization.XmlIgnore()]
public bool IsExistingFile
{
get
{
return m_IsExistingFile;
}
set
{
m_IsExistingFile = value;
}
}
/// <summary>
/// Check the file name is a real file name but not a path
/// </summary>
/// <param name="fileName"></param>
/// <remarks></remarks>
public static bool IsLocalFileName(string fileName)
{
if (fileName == null)
{
throw new ArgumentNullException("fileName");
}
if (fileName.IndexOfAny(Path.GetInvalidFileNameChars()) >= 0 || fileName.IndexOfAny(new Char[] { Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar, Path.VolumeSeparatorChar }) >= 0)
{
return false;
}
return true;
}
}
}
|