Close() public method

public Close ( ) : void
return void
Esempio n. 1
0
        public MyResourceDataFile(string fileName)
        {
#if DOTNETCORE
            var reader = new System.Resources.Extensions.DeserializingResourceReader(fileName);
#else
            var reader = new System.Resources.ResourceReader(fileName);
#endif

            this.FileName = fileName;
            this.Name     = Path.GetFileNameWithoutExtension(fileName);
            var  objValues   = new Dictionary <string, object>();
            var  strValues   = new Dictionary <string, string>();
            var  resouceSet  = new System.Resources.ResourceSet(reader);
            var  enumer      = resouceSet.GetEnumerator();
            var  lstData     = new List <byte>();
            bool hasBmpValue = false;
            while (enumer.MoveNext())
            {
                string itemName = (string)enumer.Key;
                var    item     = new MyResourceDataItem();
                item.Name       = itemName;
                item.StartIndex = lstData.Count;
                item.Key        = _Random.Next(1000, int.MaxValue - 1000);
                item.Value      = enumer.Value;
                if (enumer.Value is string)
                {
                    item.IsBmp = false;
                    string str = (string)item.Value;
                    int    key = item.Key;
                    for (int iCount = 0; iCount < str.Length; iCount++, key++)
                    {
                        var v = str[iCount] ^ key;
                        lstData.Add((byte)(v >> 8));
                        lstData.Add((byte)(v & 0xff));
                    }
                }
                else if (enumer.Value is System.Drawing.Bitmap)
                {
                    item.IsBmp  = true;
                    hasBmpValue = true;
                    var ms = new System.IO.MemoryStream();
                    ((System.Drawing.Bitmap)item.Value).Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
                    var  bs2 = ms.ToArray();
                    byte key = (byte)item.Key;
                    for (int iCount = 0; iCount < bs2.Length; iCount++, key++)
                    {
                        bs2[iCount] = (byte)(bs2[iCount] ^ key);
                    }
                    lstData.AddRange(bs2);
                }
                else
                {
                    throw new NotSupportedException(item.Value.GetType().FullName);
                }
                item.BsLength = lstData.Count - item.StartIndex;
                this.Items.Add(item);
            }
            resouceSet.Close();
            this.Datas = lstData.ToArray();
        }
Esempio n. 2
0
 /// <summary>Tells the <see cref="T:System.Resources.ResourceManager" /> to call <see cref="M:System.Resources.ResourceSet.Close" /> on all <see cref="T:System.Resources.ResourceSet" /> objects and release all resources.</summary>
 public virtual void ReleaseAllResources()
 {
     lock (this)
     {
         foreach (object obj in this.ResourceSets.Values)
         {
             ResourceSet resourceSet = (ResourceSet)obj;
             resourceSet.Close();
         }
         this.ResourceSets.Clear();
     }
 }