EchoTex_Payroll/Ease.Core/Utility/LateBoundObject.cs

180 lines
5.4 KiB
C#
Raw Normal View History

2024-10-14 10:01:49 +06:00
/*
|-------------------------------------------------------------------------------|
| Copyright © Computer Ease Limited |
| Address: 1/9 Bloack-A Lalmatia, Dhaka-1207, Bangladesh |
| Email: info@celimited.com, cease@bol-online.com, web: www.celimited.com |
| Unauthorized copy or distribution is strictly prohibited |
| Author: S. M. Russel, Last modified date: 23/07/2012 |
|-------------------------------------------------------------------------------|
*/
using System;
using System.Reflection;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
namespace Ease.Core.Utility
{
//public sealed class LateBoundObject : IDisposable
//{
// private Type _t;
// private object _o;
// private Context _ctx;
// #region Context
// private class Context
// {
// private List<LateBoundObject> _objects = new List<LateBoundObject>();
// public void AddObject(LateBoundObject o)
// {
// _objects.Add(o);
// }
// public void Release()
// {
// foreach (LateBoundObject lbo in _objects)
// {
// if (lbo != null && lbo._o != null && Marshal.IsComObject(lbo._o))
// {
// try
// {
// Marshal.ReleaseComObject(lbo._o);
// }
// catch { }
// }
// }
// }
// }
// #endregion
// public static bool IsValidProgID(string progID)
// {
// Type t = Type.GetTypeFromProgID(progID);
// return t != null;
// }
// private LateBoundObject(Context ctx, object o)
// {
// _ctx = ctx;
// _ctx.AddObject(this);
// _o = o;
// if (_o != null)
// _t = _o.GetType();
// }
// public LateBoundObject(string progID)
// {
// _ctx = new Context();
// _ctx.AddObject(this);
// _t = Type.GetTypeFromProgID(progID);
// if (_t == null)
// throw new ArgumentException("Invalid ProgID " + progID, "progID");
// try
// {
// _o = _t.InvokeMember("", BindingFlags.CreateInstance, null, null, null);
// }
// catch (TargetInvocationException e)
// {
// if (e.InnerException != null)
// throw e.InnerException;
// else
// throw;
// }
// }
// public object Value
// {
// get { return _o; }
// }
// public LateBoundObject GetProperty(string name)
// {
// try
// {
// return new LateBoundObject(_ctx, _t.InvokeMember(name, BindingFlags.GetProperty, null, _o, null));
// }
// catch (TargetInvocationException e)
// {
// if (e.InnerException != null)
// throw e.InnerException;
// else
// throw;
// }
// }
// public LateBoundObject GetProperty(string name, params object[] args)
// {
// try
// {
// return new LateBoundObject(_ctx, _t.InvokeMember(name, BindingFlags.GetProperty, null, _o, args));
// }
// catch (TargetInvocationException e)
// {
// if (e.InnerException != null)
// throw e.InnerException;
// else
// throw;
// }
// }
// public void SetProperty(string name, object val)
// {
// try
// {
// _t.InvokeMember(name, BindingFlags.SetProperty, null, _o, new object[] { val });
// }
// catch (TargetInvocationException e)
// {
// if (e.InnerException != null)
// throw e.InnerException;
// else
// throw;
// }
// }
// public void SetProperty(string name, object val, params object[] args)
// {
// try
// {
// object[] args1 = new object[args.Length + 1];
// args.CopyTo(args1, 0);
// args1[args1.Length - 1] = val;
// _t.InvokeMember(name, BindingFlags.SetProperty, null, _o, args1);
// }
// catch (TargetInvocationException e)
// {
// if (e.InnerException != null)
// throw e.InnerException;
// else
// throw;
// }
// }
// public LateBoundObject ExecuteMethod(string name, params object[] args)
// {
// try
// {
// return new LateBoundObject(_ctx, _t.InvokeMember(name, BindingFlags.InvokeMethod, null, _o, args));
// }
// catch (TargetInvocationException e)
// {
// if (e.InnerException != null)
// throw e.InnerException;
// else
// throw;
// }
// }
// public void Dispose()
// {
// _ctx.Release();
// }
//}
}