Quantcast
Channel: .NET Framework Class Libraries forum
Viewing all 8156 articles
Browse latest View live

How to convert Date in this format

$
0
0

Hello everyone ,

I know its simple but help me  in getting started with globalization in c# example  

 string format : 08/09/16 17:31:50    

I want convert into This pattern ,  its should not care any local machine culture  how mention implicitly this format   2016-09-08 17:31:50

sample :

DateofRun = DateTime.ParseExact(Dateofexe.ToString(), "MM/dd/yyyy HH:mm", CultureInfo.InvariantCulture).ToString();

thanks 

Ranjith 


Ranjith@Learner @Microsoft products


Information about the domain could not be retrieved (1355)

$
0
0

I am using below code to fetch members of AD group but it is giving me mentioned exception.

PrincipalSearchResult<Principal> resultCollection = groupPrincipal.GetMembers(false);foreach(var userPrincipal in resultCollection)

Foreach loop is failing by giving below exception.

Exception :- Information about the domain could not be retrieved (1355)., System.DirectoryServices.AccountManagement.PrincipalOperationException: Information about the domain could not be retrieved (1355). at System.DirectoryServices.AccountManagement.Utils.GetDcName(String computerName, String domainName, String siteName, Int32 flags) at System.DirectoryServices.AccountManagement.ADStoreCtx.LoadDomainInfo() at System.DirectoryServices.AccountManagement.ADStoreCtx.get_UserSuppliedServerName() at System.DirectoryServices.AccountManagement.ADDNLinkedAttrSet.BuildPathFromDN(String dn) at System.DirectoryServices.AccountManagement.ADDNLinkedAttrSet.MoveNextMemberEnum() at System.DirectoryServices.AccountManagement.ADDNLinkedAttrSet.MoveNext() at System.DirectoryServices.AccountManagement.FindResultEnumerator1.MoveNext() at System.DirectoryServices.AccountManagement.FindResultEnumerator1.System.Collections.IEnumerator.MoveNext()

I have tried below solutions but they are not working for me.

Solution 1

Solution 2

Can anyone help on this?

Network Management System

$
0
0

hii

i am getting the following error when i am running my project in.net

.NET document scanning API

$
0
0

Hi,

I am looking for a .NET "scanning API" to scan the documents from .NET application, is there any any good example I can use for this. I want to launch .NET scanning application from another Visual basic application.

Thanks,

Rajeev


Scanning Component/sdk in .Net

$
0
0

Hello,

I want to develop a .Net application to scan some documents using VB.Net or C#.Net.

I searched for any component or any SDK provided by Microsoft which I can use to develop this application but no luck till yet. On Internet I found many third party components/sdk which are claiming to be .Net complaint but I am looking for component/sdk for scanning which is either provided by Microsoft or inbuilt in .Net Framework or VisualStudio.

Scan documents using Twain Api

$
0
0

Hello,

I try to use the code sample from code project inorder to execute scan documents :http://www.codeproject.com/KB/dotnet/twaindotnet.aspx
It works on Windows-XP and not working on Windows-7.

1. Is there is any specification on windows-7 that should be considered ?
2. Why the code is now working on windows-7, Can you supply me sample code that works on windows-7 ?

Thnx,
khalil

Remove Enterprise Logging Default Log parameters & Set Local time

$
0
0

Dear sir/miss

I created a shared configuration to set my enterprise library so that I can use it from different types of projects/applications within one Solution in the Visual Studio. I have created my own template but the logs till some issues. In the Result logs sample,

(1) I still get a number of categories which are not stated in my formatter whichI have highlighted in bold.
(2) Also I realised the TimeStamp which I stated in the "Text Formatter" is giving GMT -8 even thought I set as (local) but giving the correct one in "Policy"

Thank you for any help you can provide me with.

I have added the code snippet below:


App.Config

<enterpriseLibrary.ConfigurationSource selectedSource="System Configuration Source" parentSource="Shared Config">
    <sources>
      <add name="System Configuration Source" type="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.SystemConfigurationSource, Microsoft.Practices.EnterpriseLibrary.Common, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
      <add name="Shared Config" type="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.FileConfigurationSource, Microsoft.Practices.EnterpriseLibrary.Common, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
           filePath="D:\Users\muthukumaran\Documents\Visual Studio 2013\Projects\Polycom Crestron\Backend AppConfig\External.config" />
    </sources>
< /enterpriseLibrary.ConfigurationSource>

External.Config

      <add name="Common Service Trace Listener" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
   listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.RollingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        fileName="C:\PolycomLogs\CommonService.log" formatter="Policy"
        rollFileExistsBehavior="Increment" rollInterval="Midnight" rollSizeKB="5000"
        timeStampPattern="dd-MM-yyyy " maxArchivedFiles="30" />
    </listeners>

 <formatters>
      <add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        template="Timestamp: {timestamp(local)}{newline}&#xA;Message: {message}{newline}&#xA;Machine: {localMachine}{newline}&#xA;App Domain: {localAppDomain}{newline}&#xA;Process Name: {localProcessName}" name="Text Formatter" />

      <add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" template="Timestamp: {timestamp(local)}{newline}&#xA;Message: {message}{newline}&#xA;" name="Policy" />
    </formatters>

 <categorySources>      
       <add switchValue="All" name="CommonServiceLog">
        <listeners>
          <add name="Common Service Trace Listener" />
        </listeners>
      </add>
    </categorySources>
    <specialSources>
      <allEvents switchValue="All" name="All Events" />
      <notProcessed switchValue="All" name="Unprocessed Category" />
      <errors switchValue="All" name="Logging Errors &amp; Warnings">
        <listeners>
          <add name="Common Service Trace Listener" />
         </listeners>
      </errors>
    </specialSources>
  </loggingConfiguration>

Result Logs Sample

Timestamp: 8/17/2016 5:35:22 PM

Message: Timestamp: 8/17/2016 9:35:22 AM
Message: Device information added.
Category:
Priority: -1
EventId: 0
Severity: Information
Title: Information in Class name: DatabaseQuery.cs, Method name: GetPhoneInformation
Machine: APPS
App Domain: Backend Windows Service.exe
ProcessId: 110036
Process Name: C:\inetpub\wwwroot\PolycomCrestronWindowsService\bin\Debug\Backend Windows Service.exe
Thread Name:
Win32 ThreadId:49052
Extended Properties:

please solve this error, mvc checkboxes selection?

$
0
0

Hi

 

 I am working with checkboxes in MVC.I have a table with one clolumn as "bit" type.The following code giving me error

 [HttpPost]
 public string Index(IEnumerable<City> cities) 
{ 
if (cities.Count(x => x.Chosen) == 0)
 {
 return "You did not select any city"; 
}

Chosen is a bit type here. and when i am trying to build it says "

 

 Cannot implicitly convert type 'bool?' to 'bool'. An explicit conversion exists (are you missing a cast?)


System.NotSupportException: The URI Prefix is Not Recognized When Creating XPS Document

$
0
0

We have an application that implements a plug-in style architecture , using classes that implement MarhsalByRefObject,etc   In some instances, an attempt to call a method from one AppDoman to another that creates an XPS document will throw the following exception:

UnhandledException event raised in MapInfoPro.exe: System.NotSupportedException: The URI prefix is not recognized.
   at System.Net.WebRequest.Create(Uri requestUri, Boolean useUriBase)
   at MS.Internal.WpfWebRequestHelper.CreateRequest(Uri uri)
   at System.IO.Packaging.PackWebRequest.GetRequest(Boolean allowPseudoRequest)
   at System.IO.Packaging.PackWebRequest.GetResponse()
   at MS.Internal.WpfWebRequestHelper.GetResponseStream(WebRequest request, ContentType& contentType)
   at System.Windows.Documents.PageContent._LoadPageImpl(Uri baseUri, Uri uriToLoad, FixedPage& fixedPage, Stream& pageStream)
   at System.Windows.Documents.PageContentAsyncResult.Dispatch(Object arg)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at Microsoft.Win32.SafeNativeMethods.MessageBoxSystem(IntPtr hWnd, String text, String caption, Int32 type)
   at Microsoft.Win32.SafeNativeMethods.MessageBox(IntPtr hWnd, String text, String caption, Int32 type)
   at System.Diagnostics.AssertWrapper.ShowMessageBoxAssert(String stackTrace, String message, String detailMessage)
   at System.Diagnostics.DefaultTraceListener.Fail(String message, String detailMessage)
   at System.Diagnostics.TraceInternal.Fail(String message)
   at MapInfoPro.App.StartApplication(String[] args) in c:\workdata\MiProTeamline\MiPro_Trunk_New12\Assems\MapInfoPro\App.xaml.cs:line 138
   at MapInfoPro.MainClass.Main(String[] args) in c:\workdata\MiProTeamline\MiPro_Trunk_New12\Assems\MapInfoPro\App.xaml.cs:line 34

The perplexing part is, the method the problem seems to originate from is simple:

internal static IDocumentPaginatorSource GetInactiveContent(MemoryStream memStream, string memoryUri)
{

FixedDocumentSequence fixedDocSeq = null;

var packageUri = new Uri(memoryUri);

var package = Package.Open(memStream);

PackageStore.AddPackage(packageUri, package);
XpsDocument newDoc = null;

newDoc = new XpsDocument(package, CompressionOption.Fast, memoryUri);

fixedDocSeq = newDoc.GetFixedDocumentSequence();
DocumentReference docReference = fixedDocSeq.References.First();
FixedDocument doc = docReference.GetDocument(false);
var fixedPage = doc.Pages[0].GetPageRoot(true);
fixedPage.Background = Brushes.Transparent;


return fixedDocSeq;
}

And it looks like the call to 'new XpsDocument' is what's causing it.   I say 'looks like' because removing that call eliminates the exception, but then we don't get the XpsDocument either.  Attempting to try/catch the exception here doesn't work,as it seems to bubble up through .NET and crash our application.

This appears to be some sort of timing issue, as it only happens under certain circumstances, mostly involving cross domain content from the application be closed/opened rapidly.

The URI's we are using are defined as:

_FrameControlUri = string.Format("memorystream://printstream{0}", Guid.NewGuid().ToString("N"));

In an attempt to keep them always unique, so it doesn't seem to be an issue with the URI itself, I'm suspicious that perhaps a package is somehow getting removed from the PackageStore and then the internal code .NET code to create the XPSDocument throws an exception.

The application is very complex, and providing a small sample to reproduce the problem won't be possible.  If you could help me understand that exception message , and possibly point me in the right direction to working around or preventing the problem it would be greatly appreciated.

Thanks,

Chris


All possible combination of array elements?

$
0
0

hi,

I want code for the all possible combination of array elements(integers) in c#.


for example:

input:1,2,3,4


Output:

12342134231423413241342134124312 ...............................


GroupPrincipal.GetMembers(true) doesn't return users from nested 'Domain Users' group

$
0
0

I've written method that returns collection of UserPrincipals in specified AD group and all groups nested inside it.

The method works really well with most AD groups. Unfortunately if specified group has 'Domain Users' nested inside it, the method doesn't return users from 'Domain Users'. However, if you request users from 'Domain Users' directly, it works. If you nest inside searched group any other user-created group, it works as intended.

To put it simply, GroupPrincipal.GetMembers(true) doesn't seem to return users from built-in groups that are nested inside searched group. This is not pointed out in this method's documentation. Maybe I'm doing something wrong.

public static List<UserPrincipalEx> GetUsersInGroup(IdentityType identityType, String groupIdentifier)
{
    List<UserPrincipalEx> userPrincipalExList = new List<UserPrincipalEx>();
    List<UserPrincipal> userPrincipalList = new List<UserPrincipal>();
    GroupPrincipal gp = GroupPrincipal.FindByIdentity(domainContext, identityType, groupIdentifier);
    if (gp == null)
    {
        return userPrincipalExList;
    }

    IEnumerable<Principal> psr = gp.GetMembers(true).Where(o => o.StructuralObjectClass == "user");
    foreach (var item in psr)
    {
        userPrincipalExList.Add(UserPrincipalEx.FindByIdentity(domainContext, item.Sid.ToString()));
    }

    return userPrincipalExList;
}

Does anybody know solution to this problem?

Looking for C#: Simple BackgroundWorker example

$
0
0

I have Win forms Application

Which is  Preforming some excel automation.

From mainform  

Calling  some other Class which will be produce excel file( within this same class open save dialog ask for file path for export)  .

Problem is while Excel is generating i am not able to handle any GUI operations complete Gui will be frezzeed

I am new to backGround class Multi threading please give some sample code which help in understanding 

1) backGround  worker class

2) save dialog if Not Cancelled by user!!!!!

protectedvoid myWorker_DoWork(object sender, DoWorkEventArgs e)       {           BackgroundWorker sendingWorker = (BackgroundWorker)sender;//Capture the BackgroundWorker that fired the event//  StringBuilder sb = new StringBuilder();//Declare a new string builder to store the result.int i = 0;               if (!sendingWorker.CancellationPending)//At each iteration of the loop, check if there is a cancellation request pending                {               //sb.Append(string.Format("Counting number: {0}{1}", PerformHeavyOperation(i), Environment.NewLine));//Append the result to the string builder               btnCancel.Enabled = true;               ICECAExcelReportEEPLUS E = newICECAExcelReportEEPLUS(this);                   E.SaveBook();                   i = 100;               sendingWorker.ReportProgress(i);//Report our progress to the main thread           }               else               {                   e.Cancel = true;//If a cancellation request is pending,assgine this flag a value of true// If a cancellation request is pending, break to exit the loop               }                   // e.Result = sb.ToString();// Send our result to the main thread!       }

public void SaveBook()       {           string ResultPath=null;           MainFormInstance.Invoke((MethodInvoker)delegate //changed this.Invoke to MainFormInstance.Invoke           {                                            SaveFileDialog saveFileDialog = new SaveFileDialog();               saveFileDialog.Filter = "Execl files (*.xlsx)|*.xlsx";               saveFileDialog.FilterIndex = 0;               saveFileDialog.RestoreDirectory = true;               saveFileDialog.CreatePrompt = true;               saveFileDialog.FileName = Filename;               saveFileDialog.Title = "Save path of the file to be exported";             //  saveFileDialog.DefaultExt = ".xls";               saveFileDialog.OverwritePrompt = true;               saveFileDialog.ValidateNames = true;               if (saveFileDialog.ShowDialog() == DialogResult.OK)               {                   ResultPath = saveFileDialog.FileName;                   if (File.Exists(ResultPath)) File.Delete(ResultPath);               }           });           SaveExcelWorkBook(ResultPath);          // return ResultPath;       }

Thanks

Ranjith

                                                                                                    


Ranjith@Learner @Microsoft products

UserPrincipal.ChangePassword stops working after windows updates 3177108 and 3167679 (2)

$
0
0

I'm having the same problem as in this post:

https://social.msdn.microsoft.com/Forums/vstudio/en-US/77dc733e-a13d-4349-9088-8065b85d5c3f/userprincipalchangepassword-stops-working-after-windows-updates-3177108-and-3167679?forum=netfxbcl

but the accepted solution is not working for me. 

The gist is using user.ChangePassword in the using System.DirectoryServices.AccountManagement namespace. 

I'm sure it must be related to the updates referred to in the other article, but apparently, it is possible to fix. 

I have verified the upn of my principal user, but still no luck. 

My code: 

using (var context = GetPrincipalContext())
{
  string sUserName = GetUserName();
  string oldPassword = GetPassword();
  string newPassword = GetNewPassword();
  using (var user = UserPrincipal.FindByIdentity(context, IdentityType.UserPrincipalName, sUserName))
  {
    try
      {
        user.ChangePassword(oldPassword, newPassword);
        Console.WriteLine("Password Changed");
      }
      catch (Exception e)
      {
        Console.WriteLine("Change password failed:        {0}", e.Message);
      }
    }
  }
}

//My GetPrincipalContext Method returns oPrincipalContext:

oPrincipalContext = new PrincipalContext(
          ContextType.Domain,
          (ADLocations[ADLocation]).Domain,
          (ADLocations[ADLocation]).OU,
          ContextOptions.Negotiate,
          (ADLocations[ADLocation]).ServiceUser,
          (ADLocations[ADLocation]).ServicePassword);

Does anyone have an suggestions? 




ConfigurationManager is not declared. It may be inaccessible due to its protection level. V4.5

$
0
0

How to resolve the error and other strange errors happening after converting web application from framework 3.5 to framework 4.5 using visual studio 2012?

The reference to libraries is there (runtime v4.0).  The code simply doesn't compile. The code is in VB.NET.

Looking for GUI or any application easy to Help a Sqlite backup based on time or restore

$
0
0

Hi , i am using Sqlite https://sqlite.org/

its really super cool , any one suggest me good tool to daily backup or restore options on file based DB 

i know simple copy paste would be done but , is any done interactive gui or something ,

please recommeded me any thing if you founded already 

thanks


Ranjith@Learner @Microsoft products


How can I bind the iqueryable data to the ASP gridview

$
0
0
i want to bind the IQueryable data to the asp gridview

Here is my code from the controller page. please check it

What I have tried:

public IQueryable Data()
{
NorthwindDataContext db = new NorthwindDataContext();
var a = db.OrdersViews;
return a;
}


And in the index.cshtml page i have used selectMethod to call the method from the controller. I have tried a lot but I can't able to achieve this.

Please note I don't need an IEnumerable type but I need just IQueryable data to bind for the grid.

Anybody please help me on this query

Thanks in advance

Is the WebPart Controls of ASP.NET 2.0 compatible beyond IE8 ?

$
0
0

I am currently working on a new project wherein the client wishes to run the application in IE11. From what information I have gathered so far, its made using the WebPart Framework.

As of now the debugger is not throwing any errors but I see none of the buttons such as delete control, copy control etc are working. I have modified some methods so now the drag drop javascript file works by which we drag and drop the user controls on the sections which is managed by WebPart.

I have tried to debug alot and i am new to .NET so I was wondering is this WebPart framework  the culprit behind these issues ? Does it have compatibility issues? It works fine till IE8, but  in IE11 the application just does not work. What can be a way forward ? Will WebPart not work anymore and is upgrading the .NET framework from 2.0 to 4.5 the only solution left ?

Thanks ,

Samantha

The current type,'XXXXX', is an interface and cannot be constructed. Are you missing a type mapping?

$
0
0

No sure if this is the correct forum to post this question

I have multiple types that are derived from the same interface. And I am using Unity IOC container to register the types

public interface IService
{
}

public class ServiceA : IService
{
}

public class ServiceB : IService
{
}

public class ServiceC : IService
{
}

If I register these types as below with Unity IOC container

       container.RegisterType<IService, ServiceA>("NameA");
       container.RegisterType<IService, ServiceB>("NameB");
       container.RegisterType<IService, ServiceC>("NameC");

then I can resolve types as below without any issue.

var service = container.Resolve<IService>("NameA");

However I am getting list of types that needs to be register with container from outside. (lets assume from text file). So I need to register only those types that are in the provided list.

public class Program
{
    public static void Main()
    {
        // i will be getting this  dictionary values from somewhere outside of application
        // but for testing im putting it here
        var list = new Dictionary<string, string>();
        list.Add("NameA", "ServiceA");
        list.Add("NameB", "ServiceB");
        list.Add("NameC", "ServiceC");


        var container = new UnityContainer();
        var thisAssemebly = Assembly.GetExecutingAssembly();

        //register types only that are in the dictionary
        foreach (var item in list)
        {
            var t = thisAssemebly.ExportedTypes.First(x => x.Name == item.Value);
            container.RegisterType(t, item.Key);
        }

        // try to resolve. I get error here
        var service = container.Resolve<IService>("NameA");
    }
}

but I am getting exception

An unhandled exception of type 'Microsoft.Practices.Unity.ResolutionFailedException' occurred in Microsoft.Practices.Unity.dll

Additional information: Resolution of the dependency failed, type = "ConsoleApplication1.IService", name = "NameA".

Exception occurred while: while resolving.

Exception is: InvalidOperationException - The current type, ConsoleApplication1.IService, is an interface and cannot be constructed. Are you missing a type mapping?


At the time of the exception, the container was:

Resolving ConsoleApplication1.IService,NameA

Please not that for some valid reasons i do not want to use Unity's register by convention option, or Unity's configuration file option to register types. I would like to register them based on the list I have.



How do I load a row from the database using the Entity Framework?

$
0
0

I ran the entity framework and it created a couple of classes (actually several classes) like this:

namespace EFTest { using System; using System.Collections.Generic; public partial class SalesRepresentative { public int ID { get; set; } public string Name { get; set; } public string Email { get; set; } public string CellPhone { get; set; } } }

public partial class SalesEntities : DbContext
{
    public SalesEntities()
            : base("name=SalesEntities")
    {
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        throw new UnintentionalCodeFirstException();
    }

    public DbSet<SalesRepresentative> SalesRepresentatives { get; set; }
    public DbSet<Sales_Regions> Sales_Regions { get; set; }
    public DbSet<SalesRegion> SalesRegions { get; set; }
    public DbSet<State> States { get; set; }
    public DbSet<Territory_Descriptions> Territory_Descriptions { get; set; }
 }

And I found an example of using them like this:

SalesRepresentative sr;
using (var ef = new SalesEntities())
{
    sr = new SalesRepresentative() { ID = IDin };
    ef.SalesRepresentatives.Add(sr);
    ef.SaveChanges();
}

But the tutorial did not mention anything about loading a record.  I looked all over the place here https://msdn.microsoft.com/en-us/data/ee712907 but could not find anything.  Can someone point me to a tutorial that explains how to read rows or give me a code snippet?

Thanks

I want info about mvvm

$
0
0

I want more information about MVVM

Viewing all 8156 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>