internal static object Resolve(bool isAsync, AppVar returnedAppVal, ParameterInfo parameterInfo)
        {
            var type = parameterInfo.ParameterType;
            if (type == typeof(void))
            {
                return null;
            }
            else if (type == typeof(AppVar))
            {
                return returnedAppVal;
            }

            if (isAsync)
            {
                return TypeUtility.GetDefault(type);
            }
            var func = UserWrapperUtility.FindCreateConstructor(type);
            if (func != null)
            {
                return func(returnedAppVal);
            }
            else if (type.IsInterface)
            {
                return FriendlyProxyFactory.WrapFriendlyProxyInstance(type, returnedAppVal);
            }
            else
            {
                return returnedAppVal.Core;
            }
        }
        /// <summary>
        /// Determines whether the specified Object instances in target application are the same instance.
        /// </summary>
        /// <param name="lhs">The first object to compare. </param>
        /// <param name="rhs">The second object to compare. </param>
        /// <returns>is same.</returns>
        /// <summary>
        /// 対象プロセス内のインスタンスが同一であるかを判断します。
        /// </summary>
        /// <param name="lhs">比較対象1。</param>
        /// <param name="rhs">比較対象2。</param>
        /// <returns>インスタンスが同一であるか。</returns>

        #else

        #endif

        #region Methods

        public static bool IsNull(AppVar appVar)
        {
            if (appVar == null)
            {
                throw new ArgumentNullException("appVar");
            }
            return appVar.IsNull;
        }
 public static bool ReferenceEquals(AppVar lhs, AppVar rhs)
 {
     if (lhs == null)
     {
         throw new ArgumentNullException("lhs");
     }
     if (rhs == null)
     {
         throw new ArgumentNullException("rhs");
     }
     return (bool)lhs.App[typeof(object), "ReferenceEquals"](lhs, rhs).Core;
 }
 internal static FriendlyOperation GetFriendlyOperation(AppVar target, string name, Async async, OperationTypeInfo typeInfo)
 {
     if (async != null && typeInfo != null)
     {
         return target[name, typeInfo, async];
     }
     else if (async != null)
     {
         return target[name, async];
     }
     else if (typeInfo != null)
     {
         return target[name, typeInfo];
     }
     return target[name];
 }
 public XamContentPaneDriver(AppVar src) : base(src) { }
 public DataWrapperAndAppVarOwner(AppVar appVar)
 {
     AppVar = appVar;
 }
 public XamOutlookBarDriver(AppVar src) : base(src) { }
 /// <summary>
 /// 念のためスタックを掘り下げてAddする
 /// </summary>
 /// <param name="list">リスト</param>
 private void AddInLocal(AppVar list)
 {
     list["Add"](0);
 }
 public XamDockManagerDriver(AppVar src) : base(src) { }
 public XamGridDriver(AppVar src) : base(src) { }
 public XamTabItemDriver(AppVar src) : base(src) { }
        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="appVar">Application variable object for the control.</param>
#else
        /// <summary>
        /// コンストラクタです。
        /// </summary>
        /// <param name="appVar">アプリケーション内変数。</param>
#endif
        public GcTextBoxDriver(AppVar appVar)
            : base(appVar) { }
        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="appVar">Application variable object for the control.</param>
#else
        /// <summary>
        /// コンストラクタです。
        /// </summary>
        /// <param name="appVar">アプリケーション内変数。</param>
#endif
        public C1FlexGridDriver(AppVar appVar)
        {
            AppVar = appVar;
            WindowsAppExpander.LoadAssembly((WindowsAppFriend)AppVar.App, typeof(C1FlexGridDriver).Assembly);
        }
 internal ControlDriverBase(AppVar appVar)
 {
     AppVar = appVar;
     Initializer.Initialize(App);
 }
 public XamDataTreeDriver(AppVar src) : base(src) { }
Exemple #16
0
        /// <summary>
        /// 非同期操作呼び出し。
        /// </summary>
        /// <param name="operationTypeInfo">操作タイプ情報。(オーバーロードの解決等に使用します。)</param>
        /// <param name="operation">操作。</param>
        /// <param name="arguments">引数。</param>
        /// <returns>戻り値。</returns>
        internal AppVar Invoke(OperationTypeInfo operationTypeInfo, string operation, object[] arguments)
        {
            //完了情報格納バッファ宣言
            _completedResult = _operationTalker.SendAndReceive(ProtocolType.AsyncResultVarInitialize, null, string.Empty, new object[] { null });

            //第一引数に入れて渡す。
            List<object> arg = new List<object>();
            arg.Add(_completedResult);
            arg.AddRange(arguments);

            //呼び出し。
            AppVar returnValue = _operationTalker.SendAndReceive(ProtocolType.AsyncOperation, operationTypeInfo, operation, arg.ToArray());
            GC.KeepAlive(_operationTalker);

            //戻り値格納変数を返す。
            return returnValue;
        }
 public XamControlBase(AppVar src) 
 {
     AppVar = src;
     Initializer.Init(App);
 }
 public RowCollectionDriver(GcMultiRowDriver multiRow, AppVar src)
     : base(src)
 {
     _multiRow = multiRow;
 }
        /// <summary>
        /// Enumerate DependencyObject continuing to LogicalTree.
        /// </summary>
        /// <param name="start">Start DependencyObject.</param>
        /// <param name="direction">Run direction.</param>
        /// <returns>Enumerated DependencyObject.</returns>
#else
        /// <summary>
        /// LogicalTreeに連なるDependencyObjectを列挙。
        /// </summary>
        /// <param name="start">列挙を開始するDependencyObject。</param>
        /// <param name="direction">走査方向。</param>
        /// <returns>列挙されたDependencyObject。</returns>
#endif
        public static IWPFDependencyObjectCollection<DependencyObject> LogicalTree(AppVar start, TreeRunDirection direction = TreeRunDirection.Descendants)
        {
            var app = (WindowsAppFriend)start.App;
            WPFStandardControls_3.Injection(app);
            return new WPFDependencyObjectCollection<DependencyObject>(app[typeof(TreeUtilityInTarget), "LogicalTree"](start, direction));
        }
 public XamValueEditorDriver(AppVar core) : base(core) { }
 public XamApplicationMenu2010ItemDriver(AppVar src) : base(src) { }
 internal static bool IsNull(AppVar appVar)
 {
     return (bool)appVar.App[typeof(object), "ReferenceEquals"](null, appVar).Core;
 }
 public GcMultiRowDriver(AppVar src) : base(src) { }
 public XamGridCellDriver(XamGridDriver grid, AppVar cellData)
     : base((AppVar)cellData.Dynamic().Control)
 {
     Grid = grid;
     CellData = cellData;
 }
 public XamComboEditorDriver(AppVar core) : base(core) { }
 public DataWrapper(AppVar a)
 {
     AppVar = a;
 }
 public XamCalendarDriver(AppVar src) : base(src) { }
 public XamApplicationMenuDriver(AppVar src) : base(src) { }
 public XamToolMenuItemDriver(AppVar src) : base(src) { }
 public XamDataGridCellDriver(XamDataGridDriver grid, AppVar cell, AppVar ctrl)
     : base(ctrl) 
 {
     Grid = grid;
     Cell = cell;
 }