I'm developing a UWP library which has public properties and method parameters of StreamSocket class. However, I'm getting "StreamSocket is not CLS-compliant" warning. What's so special there that Microsoft decided to leave the respective assembly non-CLS-compliant and are there any potential issues I should know about when using/distributing this library? Maybe CLS incompliance will somehow limit the ways my library can be used by other developers?
Getting "Argument type 'StreamSocket' is not CLS-compliant" warning on build
345 Views Asked by Alex At
1
There are 1 best solutions below
Related Questions in C#
- How to call a C language function from x86 assembly code?
- What does: "char *argv[]" mean?
- User input sanitization program, which takes a specific amount of arguments and passes the execution to a bash script
- How to crop a BMP image in half using C
- How can I get the difference in minutes between two dates and hours?
- Why will this code compile although it defines two variables with the same name?
- Compiling eBPF program in Docker fails due to missing '__u64' type
- Why can't I use the file pointer after the first read attempt fails?
- #include Header files in C with definition too
- OpenCV2 on CLion
- What is causing the store latency in this program?
- How to refer to the filepath of test data in test sourcecode?
- 9 Digit Addresses in Hexadecimal System in MacOS
- My server TCP doesn't receive messages from the client in C
- Printing the characters obtained from the array s using printf?
Related Questions in UWP
- How to make that each seller has its own different set of products using sqlite and uwp
- How can i solve SQLITE_IOERR_SEEK on Unreal UWP application on MS Hololens2
- UWP Blank app throws error code: The app didn't start.. Activation phase: COM ActivateExtension
- How can I tell if a control is actually Visible in UWP?
- DEP0700: Registration of the app failed UWP in release mode
- Linker errors when adding a native c++ static library to Windows runtime component (UWP)
- uwp app only accepts input whenever i have opened on conhost/powershell/cmd
- uwp - WebAuthenticationBroker does not show cloudflare captcha
- How do I get the typename of an arbitrary XAML FrameworkElement?
- Apryse PDFTron SetDoc method throws AccessViolationException
- How do you know which items are realized (non-virtualized) in an ItemsRepeater?
- How to copy or drag n drop image from Webview2 to Canvas?
- UWP app Shutdown PC don't work in kiosk mode
- Path denied error when building UWP app in release
- Display Data from Drive D: in the Gridview
Related Questions in CLS-COMPLIANT
- CLSCompliant attribut default value
- GCP Console error: System has not been booted with systemd as init system (PID 1). Can't operate. Failed to connect to bus: Host is down
- Why does an explicit interface implementation with varying case prevent a class from being CLS compliant?
- Setting the CLSComplaint attribute to true shows error with VisualStudio 2022
- If enums are not CLS-compliant what can I use instead?
- Does C# CLS doesn't cover passing ulong parameter?
- What are the potential impacts of CLS Non-Compliance?
- Is \t CLS compliant?
- Is there any reason to mark a .NET Standard or a .NET Core library as CLS compliant
- How to mark .NET Standard code as CLS-compliant?
- How to use CallerMemberName in a CLS compliant assembly
- Are operators or IEquatable interface CLS Compliant?
- NUnit TestCase - Arrays as attribute argument is not CLS-compliant
- How do I find all the non CLS-compliant statements in my .NET code?
- Getting "Argument type 'StreamSocket' is not CLS-compliant" warning on build
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Well, from the documentation:
If you design a CLS–compliant class library, your library will have a guarantee of interoperability with a wide range of programming languages; therefore, your library is likely to have a wider customer base than a version that is not CLS-compliant.
So the [obvious] answer is that they did not have "programming language interoperatibility" in mind when they coded that thing.
I am not surprised to be honest, MS is not exactly known for strictness (IE anyone?)
Read more here: https://msdn.microsoft.com/en-us/library/bhc3fa7f.aspx
UPDATE:
I will try to demystify this a little bit based on the comments.
The CLS (Common Language Specification) defines the features that any language that targets the .NET Framework MUST support. Hence, you should only care about it if your libraries are going to be consumed by a .NET language.
For instance, there is a restriction in the CLS that says that class and member names cannot differ only by case. You can't have one property named MySocket and another one named mySocket. This is important for languages like VB .NET which are not case sensitive.
In the case at hand, your library is exposing StreamSocket, which is not marked as CLS Compliant. What if this class has methods like the samples above and you try to use your library in some VB.NET project? This is what the compiler is warning you about.